$(function () {
    // 时间范围选择输入框处理，可参考 【系统管理员管理 /admin/system/user/index】 界面中，（添加时间）输入框的模板及交互效果
    moment.locale('zh-cn');
    $('input.datepicker').daterangepicker({
        autoUpdateInput: false,
        // autoApply: true,
        locale: { format: 'YYYY-MM-DD', separator: ' - ', applyLabel: '应用', cancelLabel: '清空' },
        minDate: '2022-12-18',
    });
    $('input.datepicker').on('apply.daterangepicker', function (ev, picker) {
        $(this).val(picker.startDate.format('YYYY-MM-DD') + ' - ' + picker.endDate.format('YYYY-MM-DD'));
    });
    $('input.datepicker').on('cancel.daterangepicker', function () {
        $(this).val('');
    });


    // 单图片显示、上传等交互，可参考 【系统管理 /admin/system/config/system】界面中，（程序LOGO）输入框的模板及交互效果
    $('img.img-thumbnail + div.card-img-overlay').on({
        mouseover: function () {
            $(this).css('animation-name', 'fadeIn');
            $(this).css('opacity', 0.9);
            $(this).css('animation-duration', '.6s');
        },
        mouseout: function () {
            $(this).css('animation-name', 'fadeOut');
            $(this).css('opacity', 0);
            $(this).css('animation-duration', '.6s');
        }
    });
    $('div.card-img-overlay > div.d-flex > button.img-tool-view').on('click', function () {
        let _img = $(this).parent().parent().prev('img.img-thumbnail');
        $('#modal-img-lg').find('div.modal-body > img').attr('src', _img.attr('src'));
        $('#modal-img-lg').modal('toggle');
    });
    $('#modal-img-lg').on('hidden.bs.modal', function (e) {
        $('#modal-img-lg').find('div.modal-body > img').attr('src', '#');
    });
    $('div.card-img-overlay > div.d-flex > button.img-tool-clear').on('click', function () {
        let _img = $(this).parent().parent().prev('img.img-thumbnail');
        _img.attr('src', '#');

        let _name = _img.data('name');
        let _parent = $(this).parent().parent().parent().parent().next('div');
        _parent.find('input[name="' + _name + '"]').val('');
    });

    // 单文件上传选择框处理
    FilePond.registerPlugin(FilePondPluginImagePreview);
    FilePond.setOptions({
        credits: false,
        labelIdle: '拖放文件，或者 <span class="filepond--label-action"> 浏览 </span>',
        labelInvalidField: '字段包含无效文件',
        labelFileWaitingForSize: '计算文件大小',
        labelFileSizeNotAvailable: '文件大小不可用',
        labelFileLoading: '加载',
        labelFileLoadError: '加载错误',
        labelFileProcessing: '上传',
        labelFileProcessingComplete: '已上传',
        labelFileProcessingAborted: '上传已取消',
        labelFileProcessingError: '上传出错',
        labelFileProcessingRevertError: '还原出错',
        labelFileRemoveError: '删除出错',
        labelTapToCancel: '点击取消',
        labelTapToRetry: '点击重试',
        labelTapToUndo: '点击撤消',
        labelButtonRemoveItem: '删除',
        labelButtonAbortItemLoad: '中止',
        labelButtonRetryItemLoad: '重试',
        labelButtonAbortItemProcessing: '取消',
        labelButtonUndoItemProcessing: '撤消',
        labelButtonRetryItemProcessing: '重试',
        labelButtonProcessItem: '上传',
        labelMaxFileSizeExceeded: '文件太大',
        labelMaxFileSize: '最大值: {filesize}',
        labelMaxTotalFileSizeExceeded: '超过最大文件大小',
        labelMaxTotalFileSize: '最大文件大小：{filesize}',
        labelFileTypeNotAllowed: '文件类型无效',
        fileValidateTypeLabelExpectedTypes: '应为 {allButLastType} 或 {lastType}',
        imageValidateSizeLabelFormatError: '不支持图像类型',
        imageValidateSizeLabelImageSizeTooSmall: '图像太小',
        imageValidateSizeLabelImageSizeTooBig: '图像太大',
        // TODO 如修改管理后台根路径，需修改此处
        server: '/admin/system/upload/index',
    });
    FilePond.create($('input[type="file"].my_pond')[0]);
    document.addEventListener('FilePond:processfile', e => {
        let _detail = e.detail;
        if (_detail.error != null) {
            return;
        }
        _fileName = _detail.file.serverId;

        let _id = e.target.id;
        let _target = $(e.target);
        let _input = _target.next('input[name="' + _id + '"]');
        if (_input.length == 1) {
            _input.val(_fileName);
        }
    });
    document.addEventListener('FilePond:removefile', e => {
        let _detail = e.detail;
        if (_detail.error != null) {
            return;
        }

        let _id = e.target.id;
        let _target = $(e.target);
        let _input = _target.next('input[name="' + _id + '"]');
        if (_input.length == 1) {
            _input.val('');
        }
    });
});